The present invention relates to information systems, and more specifically, to an approach for performing administrative functions in information systems.
Information systems, and in particular database systems, routinely perform a variety of administrative functions to maintain their orderliness and efficiency. Examples of administrative functions include creating and updating data structures and indexes, backing up and archiving data and collecting statistical information about stored data. An administrative function includes a set of one or more administrative steps. The steps are an ordered sequence of tasks which are performed to complete the administrative function. Administrative functions such as these are sometimes collectively referred to as xe2x80x9chousekeepingxe2x80x9d functions.
Performing administrative functions consumes system resources and time which can interfere with other processing. This problem is exacerbated in information systems containing large amounts of data, e.g. warehousing systems and large database systems, since the amount of system resources and time attributable to performing administrative functions, such as updating indexes and gathering statistical information, usually increases as the amount of data increases.
Administrative functions are often performed during scheduled system xe2x80x9cdown timesxe2x80x9d or during times of minimal user activity to reduce interference with online user processing. However, administrative functions that are initiated during down times cannot always be completed during the allocated time period. When administrative functions cannot be completed during the allocated time period, either the administrative functions must be allowed to continue until they have completed, or be prematurely terminated. Allowing administrative functions to continue beyond scheduled down times can interfere with other time critical processing. On the other hand, prematurely terminating administrative functions can be problematic because administrative functions traditionally cannot be stopped and restarted at a later time since the data that the administrative functions operated on may change before the next scheduled down time. As a result, prematurely terminated administrative functions must be completely re-executed at a later time.
Another approach for performing administrative functions is for a system operator (SYSOP) to manually select a particular set of administrative steps of the function to be performed during an allocated time period. Whether administrative functions can be completed within scheduled down times depends upon the ability of the SYSOP to select particular administrative steps of the function that can be completed during the allocated time period. Since it can be difficult to predict the amount of time that is required to perform a particular administrative step, it can be difficult for the SYSOP to estimate the amount of time that will be required to complete a set of administrative steps.
Sometimes a SYSOP underestimates the amount of time that will be required to perform a particular administrative function and the particular administrative function must be prematurely terminated and completely re-executed at another scheduled down time. Other times a SYSOP overestimates the amount of time that will be required to perform a particular administrative function and the particular administrative function is completed earlier than expected, resulting in unused down time. One solution to this problem is for a SYSOP to manually break down an administrative function into steps and partially complete the steps within the allocated time period. However, this can require a large amount of labor and still relies upon the judgment of the SYSOP to complete tasks within the allocated time period.
Based on the need to perform administrative functions in information systems and the limitations in the prior approaches, an approach for efficiently performing administrative functions in information systems during scheduled down times is highly desirable.
According to one aspect of the invention a method is provided for performing a plurality of administrative steps. The method includes the steps of determining a plurality of administrative steps to be performed, prioritizing the plurality of administrative steps based upon priority criteria to produce a plurality of prioritized administrative steps, determining an estimated amount of time that is required to perform each of the plurality of prioritized administrative steps and performing one or more of the plurality of prioritized administrative steps within one or more specified time periods in a sequence that is based upon the relative priorities of each of the plurality of prioritized administrative steps and the estimated amount of time determined for each of the plurality of prioritized administrative steps.
According to another aspect of the invention, a method is provided for collecting statistical information in a database system. The method includes the computer-implemented steps of determining a plurality of database objects for which statistical information is to be collected, prioritizing the database objects based upon the value of their statistics to the system, determining an estimated amount of time that is required to collect statistical information for each of the plurality of database objects and collecting statistical information for the plurality of database objects within one or more specified time periods in a sequence based upon the database object priorities and the estimated amount of time that is required to collect statistical information for each of the plurality of database objects.